Traditional caching processes in MegaRAID inherently require region locks to avoid data inconsistency. This is especially for RAID 5 and RAID 6 architectures. Unlike RAID 0 and RAID 1, RAID 5/6 architectures have one or two parity arms for redundancy. Flush algorithms need to make sure that the parity data is always consistent. Each update for the data arms would result in an update for the parity. That means that either one needs to read all the remaining drives to calculate a new parity (e.g., a so-called read peers method) or the old data for the dirty arms and parity arms needs to be read to perform an XOR to calculate the new parity (e.g., a so-called read-modify-write). This means that the same processes used for RAID 0/1 architectures cannot be used for other architectures that make use of parity arms for redundancy.